//
//  UserService.swift
//  ban
//
//  Created by mba on 16/8/22.
//  Copyright © 2016年 mbalib. All rights reserved.
//

import UIKit


class AIService: NSObject {
    
    class func actionAccessToken(
                            _ success:@escaping (_ isSuccess: Bool)->(),
                            failure:@escaping (_ error: NSError)->()){
        
        let url = kAIBaseAPIURL + "freshaccesstoken"
        if let loginToken = AIUserAccount.loginToken {
                let params = [
                    "login_token": loginToken,
                    ]
                MBARequest<AccessTokenModel>.go(url: url, method: .post, params: params, cache: .Default, completionHandler: { (bean, error) in
                    if let bean = bean {
                        AIUserAccount.saveAccount(userAccount: bean)
                        success(true)
                    }
                    if let error = error {
                        failure(error)
                        if 10002 == error.code { // logintoken 过期
                            AIUserAccount.cleanAccount()
                            NotificationCenter.default.post(name: NSNotification.Name(rawValue: kUserShouldLoginNotification), object: nil, userInfo: nil)
                            if let type = error.userInfo["type"] as? String{
                                if("singleLoginError" == type){
                                    MBAUtils.showKnowAlert(message: error.domain)
                                }
                            }
                        }else{
                            if var num = MBAMemcachedCache.object(forKey: "error10002") as? Int{
                                num+=1
                                if (num>2){
                                    AIUserAccount.cleanAccount()
                                    NotificationCenter.default.post(name: NSNotification.Name(rawValue: kUserShouldLoginNotification), object: nil, userInfo: nil)
                                    MBAMemcachedCache.set(object: 0, forKey: "error10002")
                                }else{
                                    MBAMemcachedCache.set(object: num, forKey: "error10002")
                                }
                            }else{
                                MBAMemcachedCache.set(object: 0, forKey: "error10002")
                            }
                        }
                        
                    }
                })
            } else {
                NotificationCenter.default.post(name: NSNotification.Name(rawValue: kUserShouldLoginNotification), object: nil, userInfo: nil)
            }
//        }
    }
    
    //获取手机验证码
//    class func actionPhoneVerCode(mobile:String,
//                                  vcode:String,
//                                  key:String,
//                                  _ success:@escaping (_ isSuccess: StatusModel)->(),
//                                  failure:@escaping (_ error: NSError)->()){
//        let url = kAIBaseAPIURL + "sendPhoneCode"
//        let params = [
//            "mobile": mobile,
//            "vcode": vcode,
//            "key": key,
//            "event":"login"
//        ]
//        
//        MBARequest<StatusModel>.go(url: url, method: .post, params: params, cache: .Default, completionHandler:{ (bean, error) in
//            if let bean = bean {
//                success(bean)
//            }
//            if let error = error {
//                failure(error)
//            }
//        })
//    }
//    
//    
//    class func actionLogin(mobile:String,
//                           area_code:String="86",
//                           code:String,
//                           success:@escaping (_ isSuccess: Bool)->(),
//                           failure:@escaping (_ error: NSError)->()){
//
//        let url = kAIBaseURL + "login/loginbymobile"
//        let params = [
//            "mobile": mobile,
//            "area_code": area_code,
//            "code": code,
//            ]
//        MBARequest<AccessTokenModel>.go(url: url, method: .post, params: params, cache: .Default,showHUD: true, completionHandler:{ (bean, error) in
//            if let bean = bean {
////                MBACache.setString(value: loginToken, key: kUserLoginToken)
//                AIUserAccount.saveAccount(userAccount: bean)
//                DispatchQueue.main.async {
//                    actionAccessToken({ (bean) in
//                        success(true)
//                    }, failure: { (error) in
//                        failure(error)
//                    })
//                }
//                
//                actionUserGetuserinfo { bean in
//                } failure: { error in
//                }
//
//                if(bean.register == 1){
//                    MBAToast.show(text: "注册成功")
//                }else{
//                    MBAToast.show(text: "登录成功")
//                }
//            }
//            if let error = error {
//                failure(error)
//            }
//        })
//    }
//    
//    class func actionBindmobile(mobile:String,
//                           area_code:String="86",
//                           code:String,
//                           success:@escaping (_ isSuccess: Bool)->(),
//                           failure:@escaping (_ error: NSError)->()){
//
//        let url = kAIBaseURL + "login/bindmobile"
//        let params = [
//            "mobile": mobile,
//            "area_code": area_code,
//            "code": code,
//            ]
//        MBARequest<StatusModel>.goSafe(url: url, method: .post, params: params, cache: .Default, completionHandler:{ (bean, error) in
//            if bean != nil {
//                if let userInfo = AIUserAccount.userInfo{
//                    userInfo.user_mobile = mobile
//                    AIUserAccount.saveUserInfo(userInfo: userInfo)
//                }
//                MBAToast.show(text: "绑定成功")
//                success(true)
//            }
//            if let error = error {
//                failure(error)
//            }
//        })
//    }
//    
//    //游客模式
//    class func actionLoginByAppleDevice(
//                           success:@escaping (_ isSuccess: Bool)->(),
//                           failure:@escaping (_ error: NSError)->()){
//
//        let url = kAIBaseURL + "login/loginByAppleDevice"
//                               let deviceid = MBAInfo.getKeychainIDFV()
//                               let time = "\(Date().timeIntervalSince1970)"
//                               let sign = (time+"pingguoapplexx5566".md5()+deviceid).md5()
//                               
//        let params = [
//            "deviceid": deviceid,
//            "time": time,
//            "sign": sign,
//            ]
//        MBARequest<AccessTokenModel>.go(url: url, method: .post, params: params, cache: .Default,showHUD: true, completionHandler:{ (bean, error) in
//            if let bean = bean {
//                AIUserAccount.saveAccount(userAccount: bean)
//                DispatchQueue.main.async {
//                    actionAccessToken({ (bean) in
//                        success(true)
//                    }, failure: { (error) in
//                        failure(error)
//                    })
//                }
//                if(bean.register == 1){
//                    MBAToast.show(text: "注册成功")
//                }else{
//                    MBAToast.show(text: "登录成功")
//                }
//            }
//            if let error = error {
//                failure(error)
//            }
//        })
//    }
//    
//    class func actionUserGetuserinfo(success:@escaping (_ bean: UserModel)->(),
//                                  failure:@escaping (_ error: NSError)->())
//    {
//        let url = kAIBaseURL + "user/getuserinfo"
//        MBARequest<UserModel>.goSafe(url: url, method: .post, params: nil, cache: .Default, completionHandler:{ (bean, error) in
//            if let bean = bean {
//                AIUserAccount.saveUserInfo(userInfo: bean)
//                success(bean)
//            }
//            if let error = error {
//                failure(error)
//            }
//        })
//    }
//
//    class func actionUpdateuserinfo(nickname: String="",
//                                    sex: String="",
//                                success:@escaping (_ bean: StatusModel)->(),
//                                failure:@escaping (_ error: NSError)->())
//    {
//        let url = kAIBaseURL + "user/updateuserinfo"
//        var params = [String: String]()
//        if(!nickname.isEmpty){
//            params = [
//                "nickname": nickname,
//            ]
//        }else if(!sex.isEmpty){
//            params = [
//                "sex": sex,
//            ]
//        }
//        
//        MBARequest<StatusModel>.goSafe(url: url, method: .post, params: params, cache: .Default, completionHandler:{ (bean, error) in
//            if let bean = bean {
//                success(bean)
//            }
//            if let error = error {
//                failure(error)
//            }
//        })
//    }
//    
//    class func actionUserClose(success:@escaping (_ bean: StatusModel)->(),
//                                  failure:@escaping (_ error: NSError)->())
//    {
//        let url = kAIBaseURL + "user/close"
//        MBARequest<StatusModel>.goSafe(url: url, method: .post, params: nil, cache: .Default,showHUD: true, completionHandler:{ (bean, error) in
//            if let bean = bean {
//                success(bean)
//            }
//            if let error = error {
//                failure(error)
//            }
//        })
//    }
    

}


extension AIService {
}
